package cn.jetpiece.cloud.joss.app.modular.accessor.service;

import com.baomidou.mybatisplus.extension.service.IService;
import cn.jetpiece.cloud.joss.api.accossor.model.params.CreateAccessorParam;
import cn.jetpiece.cloud.joss.api.accossor.model.params.UpdateAccessorParam;
import cn.jetpiece.cloud.joss.api.accossor.model.query.AccessorQuery;
import cn.jetpiece.cloud.joss.api.accossor.model.result.AccessorResult;
import cn.jetpiece.cloud.joss.api.constant.AccessorCache;
import cn.jetpiece.cloud.joss.app.modular.accessor.entity.Accessor;
import cn.jetpiece.cloud.model.page.PageResult;

/**
 * <p>
 * 授权 服务类
 * </p>
 *
 * @author XuJZ
 * @since 2020-09-05
 */
public interface AccessorService extends IService<Accessor> {

    /**
     * 新增
     *
     * @param param 新增参数
     * @return 返回结果
     */
    boolean add(CreateAccessorParam param);

    /**
     * 更新
     *
     * @param param 修改参数
     * @return 返回结果
     */
    boolean update(UpdateAccessorParam param);

    /**
     * 删除
     *
     * @param id 主键
     * @return 返回结果
     */
    boolean delete(String id);

    /**
     * 分页查询
     *
     * @param param 查询条件
     * @return 返回结果
     */
    PageResult<AccessorResult> page(AccessorQuery param);

    /**
     * 通过公钥查询授权信息
     *
     * @param accessKey 公钥
     * @return 返回结果
     */
    AccessorCache getByAccessKey(String accessKey);
}
